8037e1a0: 00 04 26 00  SLL a0, a0, 0x18 (24)
8037e1a4: 00 04 26 03  SRA a0, a0, 0x18 (24)               arg1 = (long)(char)arg1
8037e1a8: 27 bd ff f8  ADDIU sp, sp, 0xfffffff8 (-8)

8037e1ac: af a0 00 04  SW r0, sp, 0x4 (4)                  [sp + 0x04] = 0;

8037e1b0: 2c 81 00 08  SLTIU at, a0, 0x8 (8)
8037e1b4: 10 20 00 3d  BEQ r0, at, 0x8037e2ac (pc + 0xf4)  if ((arg1 < 8) == 0) goto 0x8037e2ac;

8037e1b8: 00 00 00 00  NOP
8037e1bc: 00 04 70 80  SLL t6, a0, 0x2 (2)
8037e1c0: 3c 01 80 39  LUI at, 0x8039 (32825)
8037e1c4: 00 2e 08 21  ADDU at, at, t6
8037e1c8: 8c 2e ba f0  LW t6, at, 0xffffbaf0 (-17680)
8037e1cc: 01 c0 00 08  JR t6                               goto 0x8038baf0[arg1];
8037e1d0: 00 00 00 00  NOP

8037e1d4: 3c 0f 80 39  LUI t7, 0x8039 (32825)              /* 0 */
8037e1d8: 8d ef be 24  LW t7, t7, 0xffffbe24 (-16860)
8037e1dc: 01 e5 c0 24  AND t8, t7, a1
8037e1e0: af b8 00 04  SW t8, sp, 0x4 (4)                  [sp + 0x04] = *(0x8038be24) & arg2;

8037e1e4: 10 00 00 31  BEQ r0, r0, 0x8037e2ac (pc + 0xc4)  break;
8037e1e8: 00 00 00 00  NOP

8037e1ec: 3c 19 80 39  LUI t9, 0x8039 (32825)              /* 1 */
8037e1f0: 8f 39 be 24  LW t9, t9, 0xffffbe24 (-16860)
8037e1f4: 03 25 30 24  AND a2, t9, a1
8037e1f8: 2c c8 00 01  SLTIU t0, a2, 0x1 (1)
8037e1fc: 01 00 30 25  OR a2, t0, r0
8037e200: af a6 00 04  SW a2, sp, 0x4 (4)                  [sp + 0x04] = (*(0x8038be24) & arg2) < 1;

8037e204: 10 00 00 29  BEQ r0, r0, 0x8037e2ac (pc + 0xa4)  break;
8037e208: 00 00 00 00  NOP

8037e20c: 3c 09 80 39  LUI t1, 0x8039 (32825)              /* 2 */
8037e210: 8d 29 be 24  LW t1, t1, 0xffffbe24 (-16860)
8037e214: 01 25 50 26  XOR t2, t1, a1
8037e218: 2d 4a 00 01  SLTIU t2, t2, 0x1 (1)
8037e21c: af aa 00 04  SW t2, sp, 0x4 (4)                  [sp + 0x04] = (*(0x8038be24) ^ arg2) < 1;

8037e220: 10 00 00 22  BEQ r0, r0, 0x8037e2ac (pc + 0x88)  break;
8037e224: 00 00 00 00  NOP

8037e228: 3c 0b 80 39  LUI t3, 0x8039 (32825)              /* 3 */
8037e22c: 8d 6b be 24  LW t3, t3, 0xffffbe24 (-16860)
8037e230: 01 65 60 26  XOR t4, t3, a1
8037e234: 00 0c 60 2b  SLTU t4, r0, t4
8037e238: af ac 00 04  SW t4, sp, 0x4 (4)                  [sp + 0x04] = (*(0x8038be24) ^ arg2) > 0;

8037e23c: 10 00 00 1b  BEQ r0, r0, 0x8037e2ac (pc + 0x6c)  break;
8037e240: 00 00 00 00  NOP

8037e244: 3c 0d 80 39  LUI t5, 0x8039 (32825)              /* 4 */
8037e248: 8d ad be 24  LW t5, t5, 0xffffbe24 (-16860)
8037e24c: 01 a5 70 2a  SLT t6, t5, a1
8037e250: af ae 00 04  SW t6, sp, 0x4 (4)                  [sp + 0x04] = *(0x8038be24) < arg2;

8037e254: 10 00 00 15  BEQ r0, r0, 0x8037e2ac (pc + 0x54)  break;
8037e258: 00 00 00 00  NOP

8037e25c: 3c 0f 80 39  LUI t7, 0x8039 (32825)              /* 5 */
8037e260: 8d ef be 24  LW t7, t7, 0xffffbe24 (-16860)
8037e264: 00 af c0 2a  SLT t8, a1, t7
8037e268: 3b 18 00 01  XORI t8, t8, 0x1 (1)
8037e26c: af b8 00 04  SW t8, sp, 0x4 (4)                  [sp + 0x04] = *(0x8038be24) >= arg2;

8037e270: 10 00 00 0e  BEQ r0, r0, 0x8037e2ac (pc + 0x38)  break;
8037e274: 00 00 00 00  NOP

8037e278: 3c 19 80 39  LUI t9, 0x8039 (32825)              /* 6 */
8037e27c: 8f 39 be 24  LW t9, t9, 0xffffbe24 (-16860)
8037e280: 00 b9 40 2a  SLT t0, a1, t9
8037e284: af a8 00 04  SW t0, sp, 0x4 (4)                  [sp + 0x04] = arg2 < *(0x8038be24);

8037e288: 10 00 00 08  BEQ r0, r0, 0x8037e2ac (pc + 0x20)  break;
8037e28c: 00 00 00 00  NOP

8037e290: 3c 09 80 39  LUI t1, 0x8039 (32825)              /* 7 */
8037e294: 8d 29 be 24  LW t1, t1, 0xffffbe24 (-16860)
8037e298: 01 25 50 2a  SLT t2, t1, a1
8037e29c: 39 4a 00 01  XORI t2, t2, 0x1 (1)
8037e2a0: af aa 00 04  SW t2, sp, 0x4 (4)                  [sp + 0x04] = arg2 >= *(0x8038be24);

8037e2a4: 10 00 00 01  BEQ r0, r0, 0x8037e2ac (pc + 0x4)   break;
8037e2a8: 00 00 00 00  NOP

*
8037e2ac: 10 00 00 03  BEQ r0, r0, 0x8037e2bc (pc + 0xc)
8037e2b0: 8f a2 00 04  LW v0, sp, 0x4 (4)                  return [sp + 0x04];
8037e2b4: 10 00 00 01  BEQ r0, r0, 0x8037e2bc (pc + 0x4)
8037e2b8: 00 00 00 00  NOP
8037e2bc: 03 e0 00 08  JR ra
8037e2c0: 27 bd 00 08  ADDIU sp, sp, 0x8 (8)


8038baf0: 8037e1d4
8038baf4: 8037e1ec
8038baf8: 8037e20c
8038bafc: 8037e228
8038bb00: 8037e244
8038bb04: 8037e25c
8038bb08: 8037e278
8038bb0c: 8037e290

arg1 = (long)(char)arg1
[sp + 0x04] = 0;
if ((arg1 < 8) == 0) goto 0x8037e2ac;
goto 0x8038baf0[arg1];
/* 0 */
[sp + 0x04] = *(0x8038be24) & arg2;
break;
/* 1 */
[sp + 0x04] = (*(0x8038be24) & arg2) < 1;
break;
/* 2 */
[sp + 0x04] = (*(0x8038be24) ^ arg2) < 1;
break;
/* 3 */
[sp + 0x04] = (*(0x8038be24) ^ arg2) > 0;
break;
/* 4 */
[sp + 0x04] = *(0x8038be24) < arg2;
break;
/* 5 */
[sp + 0x04] = *(0x8038be24) >= arg2;
break;
/* 6 */
[sp + 0x04] = arg2 < *(0x8038be24);
break;
/* 7 */
[sp + 0x04] = arg2 >= *(0x8038be24);
break;
8037e2ac:
return [sp + 0x04];

int 0x8037e1a0(char arg1, long arg2)
{
    int r = 0;
    switch (arg1) {
    case 0:
        r = *(0x8038be24) & arg2;
        break;
    case 1:
        r = !(*(0x8038be24) & arg2);
        break;
    case 2:
        r = (*(0x8038be24) == arg2);
        break;
    case 3:
        r = (*(0x8038be24) != arg2);
        break;
    case 4:
        r = *(0x8038be24) < arg2;
        break;
    case 5:
        r = *(0x8038be24) >= arg2;
        break;
    case 6:
        r = arg2 < *(0x8038be24);
        break;
    case 7:
        r = arg2 >= *(0x8038be24);
        break;
    }
    return r;
}
